#include<bits/stdc++.h>
using namespace std;
#include "graph.h"
int c[1000005],pt[1000005],dis[305][305],cnt;
void dfs(int lst){
	int D=NumberOfRoads();
	int val=Color();
	int col=0;
	if(val!=1) col=val;
	else col=cnt,cnt++;
	for(int i=1; i<=D; i++){
		Move(i,col);
		if(Color()==1) dfs(LastRoad());
		else{
			int val=col,VAL=Color();
			dis[val][VAL]=dis[VAL][val]=1;
			Move(LastRoad(),VAL);
		}
	}
	if(lst!=-1) Move(lst,col);
	return;
}
void Inspect(int R) {
	// Write your code here.
	cnt=2;
	memset(dis,0x3f,sizeof dis);
	dfs(-1);
	for(int i=2; i<cnt; i++) dis[i][i]=0;
	for(int k=2; k<cnt; k++) for(int i=2; i<cnt; i++) for(int j=2; j<cnt; j++)
		dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
	// for(int i=2; i<cnt; i++) for(int j=2; j<cnt; j++) cout<<i<<' '<<j<<' '<<dis[i][j]<<'\n';
	for(int i=2; i<cnt; i++) for(int j=2; j<cnt; j++) if(dis[i][j]>(int)1e9) exit(0);else pt[dis[i][j]]++;
	for(int i=1; i<=R; i++) Answer(i,pt[i]/2);
	return;
}